1. Field of the Invention
The present invention relates to a system for controlling the rebooting of a device such as a computer.
2. Background
Computers and similar devices may require significant time to reboot or initialize themselves when powered-up or otherwise restarted. Computers that must receive large amounts of data over a communication link (such as a network) may experience greater delays when rebooting if the communication link is slow or congested due to other traffic on the link. For example, an inexpensive computer coupled to a network may receive its operating system and related files as well as application programs and other data from a server coupled to the network. This type of computer may be referred to as a "network-booted computer" and does not require a disk drive or other mass storage device for storing an operating system, application programs, and the like. Thus, each time the computer is rebooted, the operating system and related files are transmitted from the server to the computer across the network. The operating system and related files may be large in relation to the available transmission capacity of the network. The time required to transmit the operating system across the network is further increased if the network already has a high traffic volume or if multiple computers are rebooted at approximately the same time.
For example, a typical delay when rebooting a network-booted computer may be approximately 20-30 seconds when the network is not congested and other network-booted computers are not rebooted at the same time. However, as network traffic levels increase, the rebooting time also increases. For example, when the network is congested or several computers are rebooted at the same time, the time to reboot a particular computer may be several minutes. In certain situations, if network congestion is severe, a time-out mechanism may cause the computer booting procedure to fail. In this situation, the user must reboot the computer again and wait for the operating system and related files to be transferred across the network. Thus, the time required to reboot such computer systems is unpredictable.
During operation of a computer or similar device, certain errors or other faults may occur that require rebooting of the computer or device. This type of rebooting may be referred to as a "warm reboot" because the computer is already powered-up. In these situations, the operating system is already stored in the computer as a result of the initial booting of the computer. However, known systems perform a reboot similar to an initial boot by causing the entire operating system and related files to be transferred again to the computer. This repeated copying of the operating system and related files increases the time during which the computer is unavailable and increases the traffic on the network.
Other known systems use a non-volatile memory such as a Flash Read-Only Memory (Flash ROM) to store the operating system and related files in a network-booted computer. Since the Flash ROM is non-volatile, the operating system and related files are not reloaded when the system is rebooted. However, Flash ROM systems require special-purpose hardware (the Flash ROM) in addition to conventional Random Access Memory (RAM). Furthermore, these Flash ROM systems require additional software to update the contents of the Flash ROM and require additional control circuitry for controlling the operation of the Flash ROM. The additional software and control requirements for a computer system using Flash ROM increases the cost and complexity of the system.
It is therefore desirable to provide a system for quickly rebooting a computer without requiring the additional cost and complexity associated with systems using Flash ROMs.